home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GMS / GMSDev / Source / C / Screens / DoubleBuffer.c next >
Encoding:
C/C++ Source or Header  |  1997-12-09  |  1.1 KB  |  46 lines

  1. /* Dice: dcc -l0 -mD dpk.o DoubleBuffer.c -o DoubleBuffer
  2. **
  3. ** This simple demo shows how to double buffer the screen.
  4. */
  5.  
  6. #include <proto/dpkernel.h>
  7.  
  8. BYTE *ProgName      = "Double Buffer Demo";
  9. BYTE *ProgAuthor    = "Paul Manias";
  10. BYTE *ProgDate      = "3 December 1997";
  11. BYTE *ProgCopyright = "DreamWorld Productions (c) 1996-1997.  Freely distributable.";
  12. BYTE *ProgShort     = "Demonstration of double buffering.";
  13.  
  14. void main(void)
  15. {
  16.   struct Picture *picture;
  17.   struct GScreen *screen;
  18.   struct JoyData *JoyData;
  19.   struct FileName PicFile = { ID_FILENAME, "GMS:demos/data/PIC.Green" };
  20.  
  21.   if (picture = Load(&PicFile, ID_PICTURE)) {
  22.  
  23.      screen = Get(ID_SCREEN);
  24.      CopyStructure(picture,screen);
  25.      screen->MemPtr1 = picture->Bitmap->Data;
  26.      screen->Attrib  = DBLBUFFER|CENTRE;
  27.  
  28.      if (screen = Init(screen,NULL)) {
  29.         if (JoyData = Init(Get(ID_JOYDATA),NULL)) {
  30.            Display(screen);
  31.            Query(JoyData);
  32.  
  33.            while (!(JoyData->Buttons & JD_LMB)) {
  34.              WaitAVBL();
  35.              SwapBuffers(screen);
  36.              Query(JoyData);
  37.            }
  38.         Free(JoyData);
  39.         }
  40.      Free(picture);
  41.      }
  42.   Free(screen);
  43.   }
  44. }
  45.  
  46.